/**
 * @deprecated - Check @/utils/playback-profiles/index
 */

import {
  isEdge,
  isTizen,
  isTv,
  supportsMediaSource
} from '@/utils/browser-detection';

/**
 * Checks if the client can play native HLS
 *
 * @param videoTestElement - A HTML video element for testing codecs
 * @returns Determines if the browser can play native Hls
 */
export function canPlayNativeHls(videoTestElement: HTMLVideoElement): boolean {
  if (isTizen()) {
    return true;
  }

  return !!(
    videoTestElement.canPlayType('application/x-mpegURL').replace(/no/, '')
    || videoTestElement
      .canPlayType('application/vnd.apple.mpegURL')
      .replace(/no/, '')
  );
}

/**
 * Determines if the browser can play Hls with Media Source Extensions
 */
export function canPlayHlsWithMSE(): boolean {
  return supportsMediaSource();
}

/**
 * Determines if the browser can play Mkvs
 */
export function hasMkvSupport(videoTestElement: HTMLVideoElement): boolean {
  if (isTv()) {
    return true;
  }

  if (
    videoTestElement.canPlayType('video/x-matroska').replace(/no/, '')
    || videoTestElement.canPlayType('video/mkv').replace(/no/, '')
  ) {
    return true;
  }

  return !!isEdge();
}
